package com.crm.dao.mapper.sys;

import com.crm.model.dto.MainSalesmanDto;
import com.crm.model.entity.sys.SalesmanSupportLog;
import com.crm.model.entity.sys.SalesmanSupportLogExample;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 首页-销售明星榜支持记录 Mapper
 * @author ChengYun
 * @date 2021年12月23日 上午 08:49:29
 */
@Mapper
public interface SalesmanSupportLogMapper {
    long countByExample(SalesmanSupportLogExample example);

    int deleteByExample(SalesmanSupportLogExample example);

    int deleteByPrimaryKey(String id);

    int insert(SalesmanSupportLog record);

    int insertSelective(SalesmanSupportLog record);

    List<SalesmanSupportLog> selectByExample(SalesmanSupportLogExample example);

    SalesmanSupportLog selectByPrimaryKey(String id);

    int updateByExampleSelective(@Param("record") SalesmanSupportLog record, @Param("example") SalesmanSupportLogExample example);

    int updateByExample(@Param("record") SalesmanSupportLog record, @Param("example") SalesmanSupportLogExample example);

    int updateByPrimaryKeySelective(SalesmanSupportLog record);

    int updateByPrimaryKey(SalesmanSupportLog record);

    /**
     * @description 判断当前账号是否已支持过榜前销售
     * @param supportAccountId 支持人账号 当前登录人id
     * @param salesmanList 榜单人信息
     * @return java.lang.String
     * @author ChengYun
     * @date 2021年12月23日 上午 09:00:42
     */
    List<Map<String, String>> isSupported(@Param("supportAccountId") String supportAccountId,
                                          @Param("salesmanList") List<MainSalesmanDto> salesmanList,
                                          @Param("supportDate") String supportDate);

    /**
     * @description 统计榜单人员的点赞、送花、留言数
     * @param salesmanList 榜单人信息
     * @return java.lang.String
     * @author ChengYun
     * @date 2021年12月23日 上午 09:00:42
     */
    List<Map<String, Object>> salesmanGiftStat(@Param("salesmanList") List<MainSalesmanDto> salesmanList,
                                               @Param("supportDate") String supportDate);

    /**
     * @description 验证是否操作过该类型
     * @param accountId 当前登录人账号
     * @param supportedAccountId 被支持人账号
     * @param type 类型（1：点赞；2：送花）
     * @return String
     * @author ChengYun
     * @date 2021年12月23日 上午 09:40:22
     */
    String isOptionByType(@Param("accountId") String accountId,
                          @Param("supportedAccountId") String supportedAccountId,
                          @Param("type") Integer type,
                          @Param("supportDate") String supportDate);

    /**
     * @description 根据销售榜单获取头像信息
     * @param resultList 销售榜单
     * @return void
     * @author ChengYun
     * @date 2021年12月23日 上午 11:34:22
     */
    List<Map<String, String>> getAccessUrlByAccountId(@Param("salesmanList") List<MainSalesmanDto> salesmanList);

    /**
     * @description 查询销售明星榜留言信息
     * @param salesmanList 销售榜单
     * @return java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
     * @author ChengYun
     * @date 2021年12月23日 下午 14:31:23
     */
    List<Map<String, Object>> getTopSalesmanMessage();
}